Dynamic Beamforming Configuration Based on Network Conditions

ABSTRACT

A method includes steering client devices to access points that potentially increase capacity of communications using beamformed transmissions. In particular, this includes determining the best access points for beamforming to a particular client or a group of clients in the network for an improved throughput performance in the deployment or a subset of access points.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119 from U.S.Provisional Application No. 61/793,179, entitled “Dynamic Access PointConfiguration Based on Network Conditions,” filed on Mar. 15, 2013, theentirety of which is incorporated herein by reference. This applicationis related to co-pending U.S. patent application Ser. No. 13/______,entitled “Channel Width Configuration Based on Network Conditions,”filed on Apr. 5, 2013, the entirety of which is incorporated herein byreference.

TECHNICAL FIELD

The present disclosure relates to configuring access points based onnetwork conditions in a wireless network. In particular, the presentdisclosure relates to steering client devices to access points thatpotentially increase capacity of communications using beamformedtransmissions.

BACKGROUND

Over the past decade, there has been a substantial increase in the useand deployment of wireless network devices, from dual-mode smartphonesto tablets capable of operating in accordance with a particularInstitute of Electrical and Electronics Engineers (IEEE) standard. With“wireless” becoming the de-facto medium for connectivity among users, ithas become increasingly important for access points to intelligentlymanage connections with a plurality of client devices to maintain highthroughput and avoid overprovisioning.

Currently, several variants of IEEE 802.11 support multiple channelwidths and optional beamforming capabilities. Network administrators areoften forced to painstakingly individually adjust these parameters toincrease network performance.

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments are illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings in which likereferences indicate similar elements. It should be noted that referencesto “an” or “one” embodiment in this disclosure are not necessarily tothe same embodiment, and they mean at least one. In the drawings:

FIG. 1 shows a block diagram example of a network in accordance with oneor more embodiments;

FIG. 2 shows a block diagram example of an access point in accordancewith one or more embodiments; and

FIG. 3 shows a method for steering client devices to access points thatmay increase capacity of an associated wireless channel in accordancewith one or more embodiments.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding. One or more embodiments may be practiced without thesespecific details. Features described in one embodiment may be combinedwith features described in a different embodiment. In some examples,well-known structures and devices are described with reference to ablock diagram form in order to avoid unnecessarily obscuring the presentinvention.

Herein, certain terminology is used to describe features for embodimentsof the disclosure. For example, the term “digital device” generallyrefers to any hardware device that includes processing circuitry runningat least one process adapted to control the flow of traffic into thedevice. Examples of digital devices include a computer, a tablet, alaptop, a desktop, a netbook, a server, a web server, authenticationserver, an authentication-authorization-accounting (AAA) server, aDomain Name System (DNS) server, a Dynamic Host Configuration Protocol(DHCP) server, an Internet Protocol (IP) server, a Virtual PrivateNetwork (VPN) server, a network policy server, a mainframe, atelevision, a content receiver, a set-top box, a video gaming console, atelevision peripheral, a printer, a mobile handset, a smartphone, apersonal digital assistant “FDA”, a wireless receiver and/ortransmitter, an access point, a base station, a communication managementdevice, a router, a switch, and/or a controller.

One type of digital device, referred to as an “access point,” is acombination of hardware, software, and/or firmware that is configured tocontrol at least (1) channel widths between access points and clientdevices and (2) beamforming characteristics between access points andclient devices.

It is contemplated that a digital device may include hardware logic suchas one or more of the following: (i) processing circuitry; (ii) one ormore communication interfaces such as a radio (e.g., component thathandles the wireless data transmission/reception) and/or a physicalconnector to support wired connectivity; and/or (iii) a non-transitorycomputer-readable storage medium (e.g., a programmable circuit; asemiconductor memory such as a volatile memory such as random accessmemory “RAM,” or non-volatile memory such as read-only memory,power-backed RAM, flash memory, phase-change memory or the like; a harddisk drive; an optical disc drive; etc.) or any connector for receivinga portable memory device such as a Universal Serial Bus “USB” flashdrive, portable hard disk drive, or the like.

Herein, the terms “logic” (or “logic unit”) are generally defined ashardware and/or software. For example, as hardware, logic may include aprocessor (e.g., a microcontroller, a microprocessor, a CPU core, aprogrammable gate array, an application specific integrated circuit,etc.), semiconductor memory, combinatorial logic, or the like. Assoftware, logic may be one or more software modules, such as executablecode in the form of an executable application, an applicationprogramming interface (API), a subroutine, a function, a procedure, anobject method/implementation, an applet, a servlet, a routine, sourcecode, object code, a shared library/dynamic load library, or one or moreinstructions. These software modules may be stored in any type of asuitable non-transitory storage medium, or transitory computer-readabletransmission medium (e.g., electrical, optical, acoustical or other formof propagated signals such as carrier waves, infrared signals, ordigital signals).

Lastly, the terms “or” and “and/or” as used herein are to be interpretedas inclusive or meaning any one or any combination. Therefore, “A, B orC” or “A, B and/or C” mean “any of the following: A; B; C; A and B; Aand C; B and C; A, B and C.” An exception to this definition will occuronly when a combination of elements, functions, steps or acts are insome way inherently mutually exclusive.

Architectural Overview

FIG. 1 shows a block diagram example of a network 1 in accordance withone or more embodiments. Network 1, as illustrated in FIG. 1, is adigital system that may include a plurality of digital devices such ascontroller 10, access points 20 ₁-20 ₄ and one or more client devices 30₁-30 ₇. The client devices 30 may include any set of devices thatcommunicate wirelessly with access points 20 within network 1. In one ormore embodiments, network 1 may include more or less devices than thedevices illustrated in FIG. 1, which may be connected to other deviceswithin network 1 via wired and/or wireless mediums.

In one embodiment, client devices 30 are digital devices that include ahardware processor, memory hierarchy, and input/output (I/O) interfacesincluding a wireless interface such as an IEEE 802.11 wirelessinterface. The wireless interface may be used to communicate with accesspoints 20 and/or controller 10. Client devices 30 may include one ormore antennas for establishing one or more concurrent spatial datastreams with an access point 20. Client devices 30 may be wirelesselectronic devices capable of receiving video, voice, and/or other datastreams. Such wireless electronic devices may include, but are notlimited to, personal computers, laptop computers, netbook computers,wireless music players, portable telephone communication devices, smartphones, tablets, digital televisions, etc.

Access points 20 ₁-20 ₄ may be any devices that can associate withclient devices 30 to transmit and receive data over wireless channels35. In one embodiment, access points 20 may correspond to a networkdevice such as a wired access port, a wireless access port, a switch, arouter, or any combination thereof. For example, access point 20 ₁ maybe a router or any device that may be configured as a hotspot (e.g., acell phone, a tablet, a laptop, etc.). Access points 20 may becommunicatively coupled to other networks, such as external network 40,via a transmission medium to send and receive data. The data mayinclude, for example, video data and/or voice data. The transmissionmedium may be a wired or a wireless connection. Access points 20communicatively couple client devices 30 to other client devices 30 orother networks (e.g., external network 40) by forwarding data to or fromclient devices 30.

FIG. 2 shows a block diagram example of an access point 20 in accordancewith one or more embodiments. In response to instructions from a networkdevice, e.g., controller 10 or some logic on access points 20 such as avirtual controller, each access point 20 may be a combination ofhardware, software, and/or firmware that is configured to configure atleast (1) channel widths between associated client devices 30, and (2)beamforming characteristics for transmission to client devices 30.Although illustrated as being configured by the controller 10, in someembodiments the access points 20 may be configured by logic on theaccess points 20 themselves. For example, a virtual controller on one ormore access points 20 may perform configuration operations as describedherein. In one embodiment as shown in FIG. 2, an access point 20 may bea network device that comprises one or more of: a hardware processor 21,data storage 22, an I/O interface 23, and device configuration logic 24.Other access points 20 within system 1 may be configured similarly ordifferently than the access point 20 shown in FIG. 2.

Data storage 22 of access point 20 may include a fast read-write memoryfor storing programs and data during access point 20's operations and ahierarchy of persistent memory, such as Read Only Memory (ROM), ErasableProgrammable Read Only Memory (EPROM,) and/or Flash memory for example,for storing instructions and data needed for the startup and/oroperations of access point 20. Data storage 22 stores data that is to betransmitted from access point 20 or data that is received by accesspoint 20. In an embodiment, data storage 22 is a distributed set of datastorage components.

In an embodiment, I/O interface 23 corresponds to one or more componentsused for communicating with other devices (e.g., client devices 30) viawired or wireless signals. I/O interface 23 may include a wired networkinterface such as an IEEE 802.3 Ethernet interface and/or a wirelessinterface such as an IEEE 802.11 WLAN interface. I/O interface 23 maycommunicate with client devices 30 over corresponding wireless channels35. Wireless channels 35 may be of various widths, which may bedynamically changed during operation. For example, each wireless channel35 may be dynamically configured to operate at 20 MHz, 40 MHz, 80 MHz,or 160 MHz. I/O interface 23 may include one or more antennas 25 forcommunicating with client devices 30, controller 10, and other wirelessdevices in network 1. For example, multiple antennas 25 may be used forforming transmission beams to client devices 30 through adjustment ofgain and phase values for corresponding antenna 25 transmissions. Thegenerated beams may avoid objects and create an unobstructed path toclient devices 30 to possibly increase transmission capacity.

Hardware processor 21 is coupled to data storage 22 and I/O interface23. Hardware processor 21 may be any processing device including, butnot limited to a MIPS/ARM-class processor, a microprocessor, a digitalsignal processor, an application specific integrated circuit, amicrocontroller, a state machine, or any type of programmable logicarray.

In an embodiment, device configuration logic 24 includes one or morefunctional units implemented using firmware, hardware, software, or acombination thereof for configuring parameters associated with accesspoint 20 and client devices 30. Although, device configuration logic 24is shown as implemented on access point 20, one or more physical orfunctional components of device configuration logic 24 may beimplemented on separate devices. The device configuration logic 24 maybe configured to adjust (1) channel widths between access points 20 andclient devices 30, and/or (2) beamforming characteristics between accesspoints 20 and clients 30 as will be described in further detail below.

Controller 10 may be any device that can manage and configure accesspoints 20 and/or client devices 30 operating in network 1. For example,as described in further detail below, controller 10 may configure one ormore access points 20 to (1) adjust channel widths between an accesspoint 20 and client devices 30 and/or (2) steer a client device 30 to anaccess point 20 that may provide increased capacity through the use oftransmission beamforming. In one embodiment, controller 10 maycorrespond to a network device such as a wired access port, a wirelessaccess port, a switch, a router, an access point, or any combinationthereof. For example, controller 10 may be an access point 20 asdescribed above in relation to FIG. 2.

Dynamic Beamforming Configuration Based on Network Conditions

In some embodiments, controller may utilize beamforming capabilities ofaccess points to increase capacity of wireless channels. For example, insome cases intelligently aiming a data transmission at a receivingclient device to avoid obstructions in a wireless channel path mayresult in an increased data throughput for the wireless channel. Theincreased capacity of these channels may improve a high densitycondition or prevent a high density condition from occurring. In somecases, (1) a particular access point may provide a greater capacity gainthan other access points in a wireless network, or (2) beamforming maynot provide any capacity gain in comparison to traditionalcommunications.

FIG. 3 shows a method 70 for steering client devices 30 to access points20 that may increase capacity of an associated wireless channel 35.Method 70 may be performed by controller 10 and/or on one or more accesspoints 20 in network 1. In one embodiment, method 70 is only performedfor access points 20 and client devices 30 that support beamformingoperations (e.g., IEEE 802.11 ac compliant components). In thisembodiment, non-beamforming access points 20 and client devices 30 maybe ignored in the method 70.

Method 70 may begin at operation 71 with the detection of a triggeringevent. The triggering event may be the detection of a high densitycondition on an access point 20. For example, a high density conditionmay be defined as the average airtime on a particular access point 20being greater than a predefined threshold value (e.g., 80% airtimeusage). In other embodiments other triggers may be used. For example,method 70 may commence upon the selection of a reset of network 1 or anaccess point 20 by a network administrator or a client device 30 joiningnetwork 1.

At operation 72, characteristics of client devices 30 associated withaccess points 20 are determined and client devices 30 are matched withcandidate access points 30 that share similar capabilities. For example,operation 72 may determine that client device 30 ₁ supports 20/40/80/160MHz channel widths and beamforming transmissions. Based on thesedetermined capabilities, operation 72 matches one or more candidateaccess points 20 for each client device 30 that share similarcapabilities (i.e., support 20/40/80/160 MHz channel widths andbeamforming transmissions). In one embodiment, client devices 30 thatare capable of receiving beamformed signals may be matched withcandidate access points 30 that are capable of beamformingtransmissions. For example, access points 20 and client devices 30 thatsupport IEEE 802.11ac may be matched together such that beamformingtransmissions may be performed when capacity gains may be achieved asdescribed further below. In one embodiment, matching of client devices30 with one or more candidate access points 20 may be performed based onresults from probe and association sequences. In addition to matchingclient devices 30 with access points 20 that support beamformingtransmissions, operation 72 may match client devices 30 with accesspoints 20 based on support for very high throughput (VHT) and/or highthroughput (HT) communications. For example, client devices 30 thatsupport VHT communications may be matched with one or more candidateaccess points 20 that also support VHT communications. Similarly, clientdevices 30 that support HT communications may be matched with candidateaccess points 20 that also support HT communications. This matching ofclient devices 30 and access points 20 that share similar capabilitieswill improve potential capacity gains by reducing the likelihood of datatransfer bottlenecks.

At operation 73, wireless channels 35 between each client device 30 andcorresponding candidate access points 20 are examined andcharacterized/tested. In one embodiment, operation 73 determines theimpulse response H or channel state information (CSI) of the wirelesschannels 35 between each client device 30 and corresponding candidateaccess points 20. Characterization or testing of each wireless channel35 may be performed using explicit or implicit feedback mechanisms.

In one embodiment, explicit feedback is used to characterize wirelesschannels 35 between access points 20 and their associated client devices30 using a sounding mechanism. For example, each client device 30 maysend explicit feedback in response to corresponding requests from eachaccess point 20. The request from access points 20 may beRequest-To-Send (RTS) and/or Network Discovery Protocol Announcement(NDPA) frames. In one embodiment, each access point 20 may send a RTS ina control wrapper frame (cwRTS) to each associated client device 30. ThecwRTS may include an NDPA indicator and a set of training symbols tosolicit information from associated client devices 30. In response toreceived cwRTS frames, each client device 30 transmits a Clear-To-Send(CTS) in a control wrapper frame (cwCTS) to corresponding access points20. Access points 20 may calculate CSI estimates for wireless channels35 based on responses from client devices 30. The CSI estimates describehow a signal propagates from access points 20 to client devices 30 overwireless channels 35 and represent the combined effect of, for example,scattering, fading, and power decay with distance over wireless channels35. As will be described further below, these CSI estimates makes itpossible to determine the potential capacity increases using beamformingtransmissions between each access point 20 and associated client devices30 in network 1.

In the explicit sounding mechanism described above, CSI estimates areobtained for wireless channels 35 between access points 20 and theirassociated client devices 30. An access point 20's associated clientdevices 30 are client devices 30 that for at least a momentary period oftime are wirelessly connected with the respective access point 20. Inone embodiment, controller 10 may cause each client device 30 toassociate with candidate access points 20 that are viewable/in-range fora brief period of time (e.g., 1-2 seconds) such that operation 73 mayestablish CSI estimates for corresponding wireless channels 35 betweeneach client device 30 and each corresponding in-range candidate accesspoint 20.

Although described in relation to access points 20 and their associatedclient devices 30, in one embodiment controller 10 may determine CSIestimates for wireless channels 35 between candidate access points 20and non-associated client devices 30 by spoofing CSI requests. Forexample, controller 10 may cause access point 20 ₁ to spoof a CSIestimation request frame with the source address of access point 20 ₂.Access point 20 ₁ transmits the request to client device 30 ₄ that isassociated with access point 20 ₂, but not with access point 20 ₁. Uponreceipt of the request, client device 30 ₄ transmits the response toaccess point 20 ₂, based on the spoofed source address in the request.The CSI estimate computed by access point 20 ₂ represents the wirelesschannel 35 between access point 20 ₁ and the non-associated clientdevice 30 ₄. Controller 10 may retrieve this CSI estimate for furtherprocessing. By spoofing the source address, this routine does notrequire each client device 30 to be associated with each access point 20in network 10 such that CSI estimations may be determined for eachpossible wireless channel 35.

As noted above, CSI estimates may also be determined based on implicitfeedback. Implicit feedback is obtained from information transmitted byclient devices 30 upon association with access points 20. In particular,client devices 30 may transmit implicit long symbols generated on clientdevices 30 to access points 20. Access points 20 may thereafter generateCSI estimates based on these long symbols. Explicit feedback has thebenefit of allowing access points 30 determine CSI estimates based ontheir transmission view to client devices 30, whereas implicit feedbackis sourced from client devices 30 alone.

Upon computation of CSI estimates between client devices 30 andcorresponding candidate access points 20 at operation 73, operation 74tests each connection/wireless channel 35 to estimate potential capacitygains achieved through the association of each client device 30 witheach corresponding candidate access point 20 using beamformingtransmissions based on the previously computed CSI estimates.Beamforming transmissions apply weights to transmitted signals toimprove reception at client devices 30. The weights are calculated basedon CSI estimates and compensate for interferences in wireless channels35. In one embodiment, testing each connection/wireless channel 35 toestimate potential capacity gains may be based on one or more ofwireless signal strength for each connection/wireless channel 35 and thenumber of spatial streams for the connection/wireless channel 35.

The system model for beamforming transmissions from an access point 20to a client device 30 over a corresponding wireless channel 35 with Nspatial streams may be represented as:

Y=k×H×V×X+Z  Equation 1

In Equation 1, matrix X represents the data transmitted from an accesspoint 20 to a client device 30; k represents the signal to noise ratioin the transmission; H represents the channel fading matrix (i.e., theimpulse response/CSI for the wireless channel 35); Z represents additivenoise in the wireless channel 35; V represents a transmit weightingmatrix used to create the transmission beam from the access point 20 tothe receiving client device 30; and matrix Y represents the receivedsignal.

In one embodiment, the singular value decomposition of the channelfading matrix H is used to calculate the weights in transmit weightingmatrix V. In this embodiment, the channel fading matrix H may berepresented as:

H=U×S×V*  Equation 2

In Equation 2, V* is the complex conjugate transpose of transmitweighting matrix V; S is a diagonal matrix of singular values, which arethe square roots of the eigenvalues of H×H*; and U is the unitarymatrix. For the signal transmitted using Equation 1, where transmitweighting matrix V is calculated from the singular value decompositionof channel fading matrix H using Equation 2, the output signal-to-noiseratio for spatial stream S(r), may be represented as:

SNR(r)=SNR(avg)×S(r)*S(r)  Equation 3

In Equation 3, S(r) is the r'th diagonal entry of spatial stream S. Theoverall signal-to-noise ratio for equal modulation and coding schemes(MCS) may be represented as:

SNR=min(SNR(r))  Equation 4

Based on the above equations, operation 74 may use a metric C toevaluate the potential capacity benefit for using transmissionbeamforming between each client device 30 and corresponding candidateaccess points 20 in network 1 using the determined CSI informationobtained at operation 73. The metric C over each of the N spatialstreams may be represented as:

$\begin{matrix}{C = {{B{\sum\limits_{r = 1}^{N}{\log_{2}\left( {1 + {{SNR}(r)}} \right)}}} - {\log_{2}1} + {{SNR}({avg})}}} & {{Equation}\mspace{14mu} 5}\end{matrix}$

In the above Equation 5, B represents the channel width for thecorresponding wireless channel 35. As noted above, the metric C may becalculated for each client device 30 in network 1 in relation to eachcorresponding candidate access point 20. In some embodiments values formetric C are calculated only for client devices 30 and correspondingcandidate access points 20 that are capable of beamforming signals(e.g., only 802.11ac access points 20 and client devices 30).

Upon the calculation of values for metric C at operation 74, operation75 compares each of the C values for each client device 30 with acapacity threshold value and determines (1) whether beamformingtransmissions provides a capacity benefit and (2) for each client device30, which corresponding candidate access point 20 provides the greatestbeamforming capacity gain. In one embodiment, beamforming transmissionsprovide capacity gains when corresponding metric C values fall below acapacity threshold value. In one embodiment, the capacity threshold isequal to the channel width of the corresponding wireless channel 35(e.g., 20 MHz, 40 MHz, 80 MHz, or 160 MHz). For example, client device30 ₁ in FIG. 1 may have metric C values of {60 MHz, 50 MHz, 90 MHz, 160MHz} corresponding to candidate access points 20 ₁-20 ₄, respectivelyand the capacity threshold may be equal to 80 MHz. On the basis of thesevalues, operation 75 may determine that client device 30 ₁ obtainscapacity gains above the capacity threshold (i.e., C>80 MHz) whenassociated with access points 20 ₃ and 20 ₄ with transmissionbeamforming activated. Since the capacity gain would be higher whenassociated with access point 20 ₄, operation 75 determines that clientdevice 30 ₁ should be associated with access point 20 ₄. Operation 75may be performed for each client device 30 such that each client device30 is associated with an access point 30 that potentially delivers ahigher throughput capacity. In some embodiments, operation 75 maydetermine that no change in association for a client device 30 may beneeded as metric C values for the client device 30 do not exceed thecapacity threshold value (e.g., C<80 MHz for each access point 20).Based on the determination regarding beamforming transmission, operation75 associates a client device 30 with an appropriate access point 20that delivers the highest capacity gain with beamforming or maintainsthe client device 30 with the current access point 20 withoutbeamforming activated. Moreover, a bin packing based approach could alsobe adopted to solve the problem of associating a respective clientdevice with an appropriate access point, because the number of clientdevices to which an access point can beamform is usually limited.

In one embodiment, operation 75 may determine an optimized associationof client devices 30 that maximizes capacity of the entire network 1.For example, operation 75 may associate each of D client devices 30 withaccess points 20 such that the sum of all C values is maximized over thenetwork 1.

$\begin{matrix}{{maximize}{\sum\limits_{i = 1}^{D}{C(i)}}} & {{Equation}\mspace{14mu} 6}\end{matrix}$

In one embodiment, maximization of the capacity of network 1 may beviewed as a bin packing problem, where different associations of clientdevices 30 with access points 20 using beamforming transmissions areproposed and corresponding C values for the network are computed. Inthis embodiment, the permutation with the highest capacity C for network1 may be selected. By maximizing the capacity of network 1, operation 75ensures that associations of client devices 30 with access points 20that provide individual capacity gains do not ultimately negativelyalter the capacity of the entire network.

By associating client devices 30 with access points 20 that providepotential beamforming capacity gains, method 70 improves transmissioncapacity of network 1 in an intelligent manner. Note that, method 70 maybe combined with channel width configuration methods disclosed inco-pending patent application entitled “Channel Width ConfigurationBased on Network Condition” to improve performance and efficiency ofnetwork 1 by (1) adjusting channel widths between access points 20 andclient devices 30 and (2) steering client devices 30 to access points 20that may increase capacity of an associated wireless channel 35.

An embodiment of the invention may be an article of manufacture in whicha machine-readable medium (such as microelectronic memory) has storedthereon instructions which program one or more data processingcomponents (generically referred to here as a “processor”) to performthe operations described above. In other embodiments, some of theseoperations might be performed by specific hardware components thatcontain hardwired logic (e.g., dedicated digital filter blocks and statemachines). Those operations might alternatively be performed by anycombination of programmed data processing components and fixed hardwiredcircuit components. Also, although the discussion focuses on uplinkmedium control with respect to frame aggregation, it is contemplatedthat control of other types of messages are applicable.

Any combination of the above features and functionalities may used inaccordance with one or more embodiments. In the foregoing specification,embodiments have been described with reference to numerous specificdetails that may vary from implementation to implementation. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. The sole and exclusiveindicator of the scope of the invention, and what is intended by theapplicants to be the scope of the invention, is the literal andequivalent scope of the set of claims that issue from this application,in the specific form in which such claims issue, including anysubsequent correction.

1. A method comprising: determining characteristics of at least oneclient device currently associated with one of a plurality of accesspoints; based at least on capabilities of a subset of the plurality ofaccess points, selecting the subset of the plurality of access points ascandidate access points for providing at least one client device accessto one or more network resources; testing connections between each ofthe subset of candidate access points and the at least one clientdevice; based on testing the connections between each of the subset ofcandidate access points and the at least one client device, selectingone of the subset of candidate access points to provide the at least oneclient device access to the one or more network resources; wherein themethod is determined by at least one device comprising a hardwareprocessor.
 2. The method of claim 1, wherein testing the connectionbetween a particular access point and the at least one client devicecomprises determining a best available connection.
 3. The method ofclaim 2, wherein determining the best available connection comprisesusing beamforming transmissions.
 4. The method of claim 1, whereintesting the connection comprises testing a wireless signal strength. 5.The method of claim 1, wherein testing the connection comprises testinga number of spatial streams.
 6. The method of claim 1, wherein testingthe connections between each of the subset of candidate access pointsand the at least one client device is performed using a soundingprotocol that generates an impulse response matrix for each connection.7. The method of claim 6, wherein the sounding protocol, comprises:transmitting, by a first access point not associated with the one ormore client devices, estimation requests to the one or more clientdevices, wherein the estimation requests include a source address of asecond access point associated with the one or more client devices;receiving, by the second access point, responses to the estimationrequests; and generating the impulse response matrices for theconnections between the first access point and the one or more clientdevices based on the response to the estimation requests.
 8. The methodof claim 1, wherein the capacity gains for performing beamformingtransmissions between the one or more client devices and each candidateaccess point are calculated using the signal-to-noise-ratio for eachspatial stream in a beamforming transmission, wherein thesignal-to-noise ratio is based on the eigenvalues of the impulseresponse matrices for respective connections.
 9. The method of claim 1,further comprising: detecting a triggering event, wherein determiningcharacteristics of the at least one client device is performed inresponse to detecting the triggering event.
 10. The method of claim 1,wherein the method is only performed for client devices and accesspoints in the network that support beamforming.
 11. An apparatuscomprising: a processor; a memory; a determining mechanism coupled tothe processor, the determining mechanism to determine characteristics ofat least one client device currently associated with one of a pluralityof access points; a selecting mechanism coupled to the processor, theselecting mechanism to select, based at least on capabilities of asubset of the plurality of access points, the subset of the plurality ofaccess points as candidate access points for providing at least oneclient device access to one or more network resources; a testingmechanism coupled to the processor, the testing mechanism to testconnections between each of the subset of candidate access points andthe at least one client device; wherein, based on testing theconnections between each of the subset of candidate access points andthe at least one client device, the selecting mechanism further toselect one of the subset of candidate access points to provide the atleast one client device access to the one or more network resources. 12.The apparatus of claim 11, wherein the determining mechanism further todetermine a best available connection.
 13. The apparatus of claim 12,wherein the determining mechanism further to determine the bestavailable connection using beamforming transmissions.
 14. The apparatusof claim 11, wherein the testing mechanism further to test a wirelesssignal strength.
 15. The apparatus of claim 11, wherein the testingmechanism further to test a number of spatial streams.
 16. The apparatusof claim 11, wherein testing the connections between each of the subsetof candidate access points and the at least one client device isperformed using a sounding protocol that generates an impulse responsematrix for each connection.
 17. The apparatus of claim 16, wherein thesounding protocol comprises: transmitting, by a first access point notassociated with the one or more client devices, estimation requests tothe one or more client devices, wherein the estimation requests includea source address of a second access point associated with the one ormore client devices; receiving, by the second access point, responses tothe estimation requests; and generating the impulse response matricesfor the connections between the first access point and the one or moreclient devices based on the response to the estimation requests.
 18. Theapparatus of claim 11, wherein the capacity gains for performingbeamforming transmissions between the one or more client devices andeach candidate access point are calculated using thesignal-to-noise-ratio for each spatial stream in a beamformingtransmission, wherein the signal-to-noise ratio is based on theeigenvalues of the impulse response matrices for respective connections.19. The apparatus of claim 11, further comprising: a detecting mechanismcoupled to the processor, the detecting mechanism to detect a triggeringevent, wherein the determining mechanism determines characteristics ofthe at least one client device in response to the detecting mechanismdetecting the triggering event.
 20. The apparatus of claim 11, whereinthe determining mechanism, the selecting mechanism, and the testingmechanism only perform for client devices and access points in thenetwork that support beamforming.